%MY_HISTEQUALIZATION Changes the contrast by using histogram equalization. The
%function gets the original gray image and its normalized accumulated histogram.

%Nach der Histogrammeinebnung ist jede Intensität gleichhäufig. Zuvor war der
%mittlere Intensitätsbereich am häufigsten.
%Man kann allerdings beispielsweise im Hintergrund des Bildes unerwünschte
%Auswirkungen der Einebnung erkennen.
%Da die Pixel dort alle eine etwa gleiche Helligkeit hatten und dieser einen großen
%Teil des Bildes ausmacht,
%wird die Intensität der Pixel dort verändert und der Hintergrund des per
%Histogrammeinebnung veränderten Bildes ist verrauscht.

function [ imgHE ] = my_histEqualization( imgGray, aHist )

%Multiply the cumulative normalized histogram to the number of bins
%This step is the equalization
cdf = round(aHist * 255);

%Prepare rhe output image
imgHE = zeros(size(imgGray), 'uint8');
imgGray = im2uint8(imgGray);

%For each pixel of the gray image, copy the equalized value from cdf
%to the output image
for i=1:size(imgGray,1)
    for j=1:size(imgGray,2)
        imgHE(i,j) = cdf(imgGray(i,j)+1);
    end
end

%print the image
figure
imshow(imgHE)
 
end

